package com.longtop.sp.mapdao;

import java.io.IOException;
import java.sql.SQLException;

import org.springframework.jdbc.core.JdbcTemplate;

/**
 * Operate接口，定义了进行数据库操作所需的方法
 * 
 * 先通过表的主键判断记录是否存在。 如果指定的记录存在，进行update操作，指定的记录不存在，进行insert操作。
 * 
 */
public interface Operate {

	/**
	 * 执行数据库操作（Insert或Update），返回结果
	 * 
	 * @return 大于0，表示插入或更新的记录行数，一般应该返回1，表示一行
	 * @throws SQLException
	 *             插入或更新的过程中发生错误，将抛出SQLException异常
	 * @throws IOException
	 *             若插入或更新的数据中有大对象字段，在写入数据流时发生错误，将抛出IOException异常。
	 * @roseuid 3E76D90401D2
	 */
	public int execute() throws Exception;

	/**
	 * 以指定的Connection对象执行操作，此Connection必须是活动的、处于打开状态的，
	 * 并且应该在主程序中自行关闭此Connection对象。
	 * 
	 * @param conn
	 *            Connection对象
	 */
	public void setJdbcTemplate(JdbcTemplate jt);

	/**
	 * @param rowData
	 *            传入此记录的数据
	 * @roseuid 3E76D90401D6
	 */
	public void setMapVO(MapVO vo);

}